three.js 将图片马赛克化的示例代码
positions = new Float32Array(Math.floor(particles * 3));
1. 解析图片
这篇文章主要介绍了three.js 将图片马赛克化的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
positions[3 * i + 2] = 0;
以上就是three.js 将图片马赛克化的示例代码的详细内容,更多关于three.js 将图片马赛克化的资料请关注其它相关文章!
content = canvas.getContext('2d');
img.src = "/static/images/base/girl.jpg";
let cw = Math.floor(canvas.width / size);
particles = cw * ch;
points = new THREE.Points(geometry, material);
canvas.height = 1200;
initCanvas() {geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3))
colors[3 * i + 1] = imgDate.data[4 * selectPos + 1] / 255.0;
geometry = new THREE.BufferGeometry();
colors[3 * i + 2] = imgDate.data[4 * selectPos + 2] / 255.0;

2. 操作像素点
如图所示,原理很简单哦。将不清晰的图片清晰化,就是需要插入更多的像素点,插入的像素点,需要根据已存在的像素点的颜色进行插值,比如原图的像素点1为0xffffff,像素点2的颜色为0xdddddd,则插在两个像素点之间像素点的颜色为0xeeeeee,以此类推。
img.onload = () => {
let selectPos = size * (i % cw) + Math.floor(i / cw) * cw * size * size;
scene.add(points);
这篇郭先生来说说BufferGeometry,类型化数组和粒子系统的使用,并且让图片有马赛克效果(同理可以让不清晰的图片清晰化),如图所示
imgDate = content.getImageData(0, 0, canvas.width, canvas.height);
img.crossOrigin = '*';
canvas = document.createElement('canvas');
可以不用纠结代码,核心思想其实我们只需要每隔一定的颜色点取出一个颜色点,然后将这个颜色赋予到geometry的color属性上,就可以了,也可以每隔两行、两列取一个点,但是图片上面的点是一维的,所以需要一些数学方法,
};
canvas.width = 1600;
createPotCloud() {scene.remove(points)
geometry.attributes.position.needsUpdate = true;
img = new Image();
解析图片和上一篇一样
var colors = new Float32Array(Math.floor(particles * 3));

points.name = 'points';
let ch = Math.floor(canvas.height / size);
loaded = true;
content.drawImage(img, 0, 0, canvas.width, canvas.height);

this.createPotCloud(); //创建点云
}
if (points) {
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
positions_af = new Float32Array(Math.floor(particles * 3));
}
positions[3 * i + 1] = canvas.height / 2 + Math.floor((-1 - i) / cw) * size;
positions[3 * i] = - canvas.width / 2 + (i % cw) * size;
for (var i = 0; i < positions.length; i += 1) {
},
geometry.dynamic = true;
var material = new THREE.PointsMaterial({ size: size, vertexColors: THREE.VertexColors })
}
colors[3 * i] = imgDate.data[4 * selectPos] / 255.0;
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jz/wp/5156.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
ludou_se_only); } add_action(s
时间:2021-01-23
-
所以经常导致输错密码的
时间:2021-01-23
-
WordPress措施打开速度慢的
时间:2021-01-22
-
WordPress回覆评论自动添加
时间:2021-01-22
-
我们可以通过下面的代码
时间:2021-01-22
-
如何修改WordPress默认脚色
时间:2021-01-20
-
同样的修改文件就行
时间:2021-01-20
-
少数善意的转载者既使没
时间:2021-01-20
热门文章
-
WordPress新手安装教程(图文)
时间:2020-12-28
-
在设置菜单中增加WordPress私密 隐藏的全部
时间:2021-01-10
-
WordPress博客程序常见错误的解决方法
时间:2020-12-28
-
WordPress程序打开速度慢的三种解决方法
时间:2021-01-10
-
wordpress使用代码在每篇文章尾部添加版权
时间:2020-12-14
-
WordPress博客措施常见错误的办理要领
时间:2021-01-15
-
关于WordPress的SEO优化相关的一些PHP页面脚
时间:2021-01-07
-
WordPress措施打开速度慢的三种办理要领
时间:2021-01-22
-
详解WordPress中的头像缓存和署理中的缓存
时间:2021-01-15
-
少数善意的转载者既使没有看到版权信息
时间:2021-01-20
